#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


int main()
{
      // 1. 打开目标文件
         int fd = open("log.txt", O_CREAT | O_WRONLY | O_APPEND, 0666);
	if(fd < 0)
	{
    	perror("open");
    	return 1;
	}	
	// 2. 输出重定向
	dup2(fd, 1);

	// 3. exec*替换，不影响重定向
	execl("/usr/bin/ls", "ls", "-al", NULL); // ls -> stdout
   // pid_t id = fork();
   // if(id == 0)
   // {
   //     sleep(1);
   //     close(1);
   //     while(1)
   //     {
   //         sleep(1);
   //     }
   // }

   // while(1)
   // {
   //     printf("haha..\n");
   //     sleep(1);
   // }
    return 0;	
}




























//int main()
//{
//	//close(0);
//	int fd = open("log.txt", O_WRONLY | O_CREAT | O_APPEND, 0666);
//	if (fd < 0)
//	{
//		perror("open");
//	}
//	
//	//输出重定向
//	dup2(fd,1);
//	
//	printf("fd: %d\n",fd);
//	const char* str="Good luck to you\n";
//	write(fd,str,strlen(str));
//	printf("hello world\n");
//
//
//
//	//int a,b,c;
//	//scanf("%d %d %d",&a,&b,&c);
//	//printf("%d %d %d\n",a,b,c);
//	//printf("fd: %d\n", fd);
//	
//	//fflush(stdin);
//	close(fd);
//	return 0;
//}
